<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>PowerVR SDK</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
<table width="100%">
  <tr>
    <td width="33%">
      <p align="left">&nbsp;<a href="http://www.imgtec.com"><img border="0" src="IMGLogo.jpg" width="200" height="30"></a></p>
    </td>
    <td width="33%">
      <p align="center"><font color="#808080" face="Arial" size="2">PowerVR Software Development Kit</a></font></p>
    </td>
    <td width="34%">
      <p align="right"><a href="http://www.powervr.com"><img border="0" src="PVRlogo.jpg" width="200" height="27"></a></p>
    </td>
  </tr>
</table>
<hr>
</head><body>
<!-- Generated by Doxygen 1.3.6 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>PVRTModelPOD.h</h1><a href="PVRTModelPOD_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/******************************************************************************</span>
00002 <span class="comment"></span>
00003 <span class="comment"> @File         PVRTModelPOD.h</span>
00004 <span class="comment"></span>
00005 <span class="comment"> @Title        PVRTModelPOD</span>
00006 <span class="comment"></span>
00007 <span class="comment"> @Version      </span>
00008 <span class="comment"></span>
00009 <span class="comment"> @Copyright    Copyright (C)  Imagination Technologies Limited.</span>
00010 <span class="comment"></span>
00011 <span class="comment"> @Platform     ANSI compatible</span>
00012 <span class="comment"></span>
00013 <span class="comment"> @Description  Code to load POD files - models exported from MAX.</span>
00014 <span class="comment"></span>
00015 <span class="comment">******************************************************************************/</span>
00016 <span class="preprocessor">#ifndef _PVRTMODELPOD_H_</span>
00017 <span class="preprocessor"></span><span class="preprocessor">#define _PVRTMODELPOD_H_</span>
00018 <span class="preprocessor"></span>
00019 <span class="preprocessor">#include "<a class="code" href="PVRTVector_8h.html">PVRTVector.h</a>"</span>
00020 <span class="preprocessor">#include "<a class="code" href="PVRTError_8h.html">PVRTError.h</a>"</span>
00021 <span class="preprocessor">#include "<a class="code" href="PVRTVertex_8h.html">PVRTVertex.h</a>"</span>
00022 <span class="preprocessor">#include "<a class="code" href="PVRTBoneBatch_8h.html">PVRTBoneBatch.h</a>"</span>
00023 
00024 <span class="comment">/****************************************************************************</span>
00025 <span class="comment">** Defines</span>
00026 <span class="comment">****************************************************************************/</span>
<a name="l00027"></a><a class="code" href="PVRTModelPOD_8h.html#a0">00027</a> <span class="preprocessor">#define PVRTMODELPOD_VERSION    ("AB.POD.2.0") </span>
00029 <span class="preprocessor">// PVRTMODELPOD Scene Flags</span>
00030 <span class="preprocessor"></span><span class="preprocessor">#define PVRTMODELPODSF_FIXED    (0x00000001)   </span>
00032 <span class="preprocessor"></span><span class="comment">/****************************************************************************</span>
00033 <span class="comment">** Enumerations</span>
00034 <span class="comment">****************************************************************************/</span>
00035 <span class="comment">/*!****************************************************************************</span>
00036 <span class="comment"> @Struct      EPODLight</span>
00037 <span class="comment"> @Brief       Enum for the POD format light types</span>
00038 <span class="comment">******************************************************************************/</span>
00039 <span class="keyword">enum</span> <a class="code" href="structEPODLight.html">EPODLight</a>
00040 {
<a name="l00041"></a><a class="code" href="PVRTModelPOD_8h.html#a55">00041</a>     <a class="code" href="PVRTModelPOD_8h.html#a55a2">ePODPoint</a>=0,     
00042     <a class="code" href="PVRTModelPOD_8h.html#a55a3">ePODDirectional</a>, 
00043     <a class="code" href="PVRTModelPOD_8h.html#a55a4">ePODSpot</a>         
00044 };
00045 
00046 <span class="comment">/*!****************************************************************************</span>
00047 <span class="comment"> @Struct      EPODPrimitiveType</span>
00048 <span class="comment"> @Brief       Enum for the POD format primitive types</span>
00049 <span class="comment">******************************************************************************/</span>
00050 <span class="keyword">enum</span> <a class="code" href="structEPODPrimitiveType.html">EPODPrimitiveType</a>
00051 {
<a name="l00052"></a><a class="code" href="PVRTModelPOD_8h.html#a56">00052</a>     <a class="code" href="PVRTModelPOD_8h.html#a56a5">ePODTriangles</a>=0, 
00053     <a class="code" href="PVRTModelPOD_8h.html#a56a6">ePODLines</a>        
00054 };
00055 
00056 <span class="comment">/*!****************************************************************************</span>
00057 <span class="comment"> @Struct      EPODAnimationData</span>
00058 <span class="comment"> @Brief       Enum for the POD format animation types</span>
00059 <span class="comment">******************************************************************************/</span>
00060 <span class="keyword">enum</span> <a class="code" href="structEPODAnimationData.html">EPODAnimationData</a>
00061 {
<a name="l00062"></a><a class="code" href="PVRTModelPOD_8h.html#a57">00062</a>     <a class="code" href="PVRTModelPOD_8h.html#a57a7">ePODHasPositionAni</a>  = 0x01, 
00063     <a class="code" href="PVRTModelPOD_8h.html#a57a8">ePODHasRotationAni</a>  = 0x02, 
00064     <a class="code" href="PVRTModelPOD_8h.html#a57a9">ePODHasScaleAni</a>     = 0x04, 
00065     <a class="code" href="PVRTModelPOD_8h.html#a57a10">ePODHasMatrixAni</a>    = 0x08  
00066 };
00067 
00068 <span class="comment">/*!****************************************************************************</span>
00069 <span class="comment"> @Struct      EPODMaterialFlags</span>
00070 <span class="comment"> @Brief       Enum for the material flag options</span>
00071 <span class="comment">******************************************************************************/</span>
00072 <span class="keyword">enum</span> <a class="code" href="structEPODMaterialFlags.html">EPODMaterialFlags</a>
00073 {
<a name="l00074"></a><a class="code" href="PVRTModelPOD_8h.html#a58">00074</a>     <a class="code" href="PVRTModelPOD_8h.html#a58a11">ePODEnableBlending</a>  = 0x01, 
00075 };
00076 
00077 <span class="comment">/*!****************************************************************************</span>
00078 <span class="comment"> @Struct      EPODBlendFunc</span>
00079 <span class="comment"> @Brief       Enum for the POD format blend functions</span>
00080 <span class="comment">******************************************************************************/</span>
00081 <span class="keyword">enum</span> <a class="code" href="structEPODBlendFunc.html">EPODBlendFunc</a>
00082 {
<a name="l00083"></a><a class="code" href="PVRTModelPOD_8h.html#a59">00083</a>     <a class="code" href="PVRTModelPOD_8h.html#a59a12">ePODBlendFunc_ZERO</a>=0,
00084     <a class="code" href="PVRTModelPOD_8h.html#a59a13">ePODBlendFunc_ONE</a>,
00085     <a class="code" href="PVRTModelPOD_8h.html#a59a14">ePODBlendFunc_BLEND_FACTOR</a>,
00086     <a class="code" href="PVRTModelPOD_8h.html#a59a15">ePODBlendFunc_ONE_MINUS_BLEND_FACTOR</a>,
00087 
00088     <a class="code" href="PVRTModelPOD_8h.html#a59a16">ePODBlendFunc_SRC_COLOR</a> = 0x0300,
00089     <a class="code" href="PVRTModelPOD_8h.html#a59a17">ePODBlendFunc_ONE_MINUS_SRC_COLOR</a>,
00090     <a class="code" href="PVRTModelPOD_8h.html#a59a18">ePODBlendFunc_SRC_ALPHA</a>,
00091     <a class="code" href="PVRTModelPOD_8h.html#a59a19">ePODBlendFunc_ONE_MINUS_SRC_ALPHA</a>,
00092     <a class="code" href="PVRTModelPOD_8h.html#a59a20">ePODBlendFunc_DST_ALPHA</a>,
00093     <a class="code" href="PVRTModelPOD_8h.html#a59a21">ePODBlendFunc_ONE_MINUS_DST_ALPHA</a>,
00094     <a class="code" href="PVRTModelPOD_8h.html#a59a22">ePODBlendFunc_DST_COLOR</a>,
00095     <a class="code" href="PVRTModelPOD_8h.html#a59a23">ePODBlendFunc_ONE_MINUS_DST_COLOR</a>,
00096     <a class="code" href="PVRTModelPOD_8h.html#a59a24">ePODBlendFunc_SRC_ALPHA_SATURATE</a>,
00097 
00098     <a class="code" href="PVRTModelPOD_8h.html#a59a25">ePODBlendFunc_CONSTANT_COLOR</a> = 0x8001,
00099     <a class="code" href="PVRTModelPOD_8h.html#a59a26">ePODBlendFunc_ONE_MINUS_CONSTANT_COLOR</a>,
00100     <a class="code" href="PVRTModelPOD_8h.html#a59a27">ePODBlendFunc_CONSTANT_ALPHA</a>,
00101     <a class="code" href="PVRTModelPOD_8h.html#a59a28">ePODBlendFunc_ONE_MINUS_CONSTANT_ALPHA</a>
00102 };
00103 
00104 <span class="comment">/*!****************************************************************************</span>
00105 <span class="comment"> @Struct      EPODBlendOp</span>
00106 <span class="comment"> @Brief       Enum for the POD format blend operation</span>
00107 <span class="comment">******************************************************************************/</span>
00108 <span class="keyword">enum</span> <a class="code" href="structEPODBlendOp.html">EPODBlendOp</a>
00109 {
<a name="l00110"></a><a class="code" href="PVRTModelPOD_8h.html#a60">00110</a>     <a class="code" href="PVRTModelPOD_8h.html#a60a29">ePODBlendOp_ADD</a> = 0x8006,
00111     <a class="code" href="PVRTModelPOD_8h.html#a60a30">ePODBlendOp_MIN</a>,
00112     <a class="code" href="PVRTModelPOD_8h.html#a60a31">ePODBlendOp_MAX</a>,
00113     <a class="code" href="PVRTModelPOD_8h.html#a60a32">ePODBlendOp_SUBTRACT</a> = 0x800A,
00114     <a class="code" href="PVRTModelPOD_8h.html#a60a33">ePODBlendOp_REVERSE_SUBTRACT</a>,
00115 };
00116 
00117 <span class="comment">/****************************************************************************</span>
00118 <span class="comment">** Structures</span>
00119 <span class="comment">****************************************************************************/</span>
00120 <span class="comment">/*!****************************************************************************</span>
00121 <span class="comment"> @Class      CPODData</span>
00122 <span class="comment"> @Brief      A class for representing POD data</span>
00123 <span class="comment">******************************************************************************/</span>
00124 <span class="keyword">class </span><a class="code" href="classCPODData.html">CPODData</a> {
00125 <span class="keyword">public</span>:
<a name="l00126"></a><a class="code" href="classCPODData.html">00126</a>     <span class="comment">/*!***************************************************************************</span>
00127 <span class="comment">    @Function           Reset</span>
00128 <span class="comment">    @Description        Resets the POD Data to NULL</span>
00129 <span class="comment">    *****************************************************************************/</span>
00130     <span class="keywordtype">void</span> <a class="code" href="classCPODData.html#a0">Reset</a>();
00131 
00132 <span class="keyword">public</span>:
00133     <a class="code" href="PVRTVertex_8h.html#a24">EPVRTDataType</a>   <a class="code" href="classCPODData.html#o0">eType</a>;      
00134     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    n;          
00135     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    <a class="code" href="classCPODData.html#o2">nStride</a>;    
<a name="l00136"></a><a class="code" href="classCPODData.html#o0">00136</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>   *<a class="code" href="classCPODData.html#o3">pData</a>;     
<a name="l00137"></a><a class="code" href="classCPODData.html#o1">00137</a> };
<a name="l00138"></a><a class="code" href="classCPODData.html#o2">00138</a> 
<a name="l00139"></a><a class="code" href="classCPODData.html#o3">00139</a> <span class="comment">/*!****************************************************************************</span>
00140 <span class="comment"> @Struct      SPODCamera</span>
00141 <span class="comment"> @Brief       Struct for storing POD camera data</span>
00142 <span class="comment">******************************************************************************/</span>
00143 <span class="keyword">struct </span><a class="code" href="structSPODCamera.html">SPODCamera</a> {
00144     <span class="keywordtype">int</span>         nIdxTarget;         
00145     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    fFOV;               
<a name="l00146"></a><a class="code" href="structSPODCamera.html">00146</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    <a class="code" href="structSPODCamera.html#o2">fFar</a>;               
<a name="l00147"></a><a class="code" href="structSPODCamera.html#o0">00147</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    <a class="code" href="structSPODCamera.html#o3">fNear</a>;              
<a name="l00148"></a><a class="code" href="structSPODCamera.html#o1">00148</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    *<a class="code" href="structSPODCamera.html#o4">pfAnimFOV</a>;         
<a name="l00149"></a><a class="code" href="structSPODCamera.html#o2">00149</a> };
<a name="l00150"></a><a class="code" href="structSPODCamera.html#o3">00150</a> 
<a name="l00151"></a><a class="code" href="structSPODCamera.html#o4">00151</a> <span class="comment">/*!****************************************************************************</span>
00152 <span class="comment"> @Struct      SPODLight</span>
00153 <span class="comment"> @Brief       Struct for storing POD light data</span>
00154 <span class="comment">******************************************************************************/</span>
00155 <span class="keyword">struct </span><a class="code" href="structSPODLight.html">SPODLight</a> {
00156     <span class="keywordtype">int</span>         <a class="code" href="structSPODLight.html#o0">nIdxTarget</a>;     
00157     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    pfColour[3];    
<a name="l00158"></a><a class="code" href="structSPODLight.html">00158</a>     <a class="code" href="structEPODLight.html">EPODLight</a>   eType;          
<a name="l00159"></a><a class="code" href="structSPODLight.html#o0">00159</a>     <span class="keywordtype">float</span>       <a class="code" href="structSPODLight.html#o3">fConstantAttenuation</a>;   
<a name="l00160"></a><a class="code" href="structSPODLight.html#o1">00160</a>     <span class="keywordtype">float</span>       <a class="code" href="structSPODLight.html#o4">fLinearAttenuation</a>;     
<a name="l00161"></a><a class="code" href="structSPODLight.html#o2">00161</a>     <span class="keywordtype">float</span>       <a class="code" href="structSPODLight.html#o5">fQuadraticAttenuation</a>;  
<a name="l00162"></a><a class="code" href="structSPODLight.html#o3">00162</a>     <span class="keywordtype">float</span>       <a class="code" href="structSPODLight.html#o6">fFalloffAngle</a>;          
<a name="l00163"></a><a class="code" href="structSPODLight.html#o4">00163</a>     <span class="keywordtype">float</span>       <a class="code" href="structSPODLight.html#o7">fFalloffExponent</a>;       
<a name="l00164"></a><a class="code" href="structSPODLight.html#o5">00164</a> };
<a name="l00165"></a><a class="code" href="structSPODLight.html#o6">00165</a> 
<a name="l00166"></a><a class="code" href="structSPODLight.html#o7">00166</a> <span class="comment">/*!****************************************************************************</span>
00167 <span class="comment"> @Struct      SPODMesh</span>
00168 <span class="comment"> @Brief       Struct for storing POD mesh data</span>
00169 <span class="comment">******************************************************************************/</span>
00170 <span class="keyword">struct </span><a class="code" href="structSPODMesh.html">SPODMesh</a> {
00171     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>        nNumVertex;     
00172     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>        nNumFaces;      
<a name="l00173"></a><a class="code" href="structSPODMesh.html">00173</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>        <a class="code" href="structSPODMesh.html#o2">nNumUVW</a>;        
<a name="l00174"></a><a class="code" href="structSPODMesh.html#o0">00174</a>     <a class="code" href="classCPODData.html">CPODData</a>            <a class="code" href="structSPODMesh.html#o3">sFaces</a>;         
<a name="l00175"></a><a class="code" href="structSPODMesh.html#o1">00175</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>        *<a class="code" href="structSPODMesh.html#o4">pnStripLength</a>; 
<a name="l00176"></a><a class="code" href="structSPODMesh.html#o2">00176</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>        nNumStrips;     
<a name="l00177"></a><a class="code" href="structSPODMesh.html#o3">00177</a>     <a class="code" href="classCPODData.html">CPODData</a>            <a class="code" href="structSPODMesh.html#o6">sVertex</a>;        
<a name="l00178"></a><a class="code" href="structSPODMesh.html#o4">00178</a>     <a class="code" href="classCPODData.html">CPODData</a>            <a class="code" href="structSPODMesh.html#o7">sNormals</a>;       
<a name="l00179"></a><a class="code" href="structSPODMesh.html#o5">00179</a>     <a class="code" href="classCPODData.html">CPODData</a>            <a class="code" href="structSPODMesh.html#o8">sTangents</a>;      
<a name="l00180"></a><a class="code" href="structSPODMesh.html#o6">00180</a>     <a class="code" href="classCPODData.html">CPODData</a>            <a class="code" href="structSPODMesh.html#o9">sBinormals</a>;     
<a name="l00181"></a><a class="code" href="structSPODMesh.html#o7">00181</a>     <a class="code" href="classCPODData.html">CPODData</a>            *<a class="code" href="structSPODMesh.html#o10">psUVW</a>;         
<a name="l00182"></a><a class="code" href="structSPODMesh.html#o8">00182</a>     <a class="code" href="classCPODData.html">CPODData</a>            <a class="code" href="structSPODMesh.html#o11">sVtxColours</a>;    
<a name="l00183"></a><a class="code" href="structSPODMesh.html#o9">00183</a>     <a class="code" href="classCPODData.html">CPODData</a>            <a class="code" href="structSPODMesh.html#o12">sBoneIdx</a>;       
<a name="l00184"></a><a class="code" href="structSPODMesh.html#o10">00184</a>     <a class="code" href="classCPODData.html">CPODData</a>            <a class="code" href="structSPODMesh.html#o13">sBoneWeight</a>;    
<a name="l00186"></a><a class="code" href="structSPODMesh.html#o12">00186</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>       *<a class="code" href="structSPODMesh.html#o14">pInterleaved</a>;  
00188     <a class="code" href="classCPVRTBoneBatches.html">CPVRTBoneBatches</a>    <a class="code" href="structSPODMesh.html#o15">sBoneBatches</a>;   
00190     <a class="code" href="structEPODPrimitiveType.html">EPODPrimitiveType</a>   <a class="code" href="structSPODMesh.html#o16">ePrimitiveType</a>; 
00192     <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a>          <a class="code" href="structSPODMesh.html#o17">mUnpackMatrix</a>;  
<a name="l00193"></a><a class="code" href="structSPODMesh.html#o16">00193</a> };
00194 
<a name="l00195"></a><a class="code" href="structSPODMesh.html#o17">00195</a> <span class="comment">/*!****************************************************************************</span>
00196 <span class="comment"> @Struct      SPODNode</span>
00197 <span class="comment"> @Brief       Struct for storing POD node data</span>
00198 <span class="comment">******************************************************************************/</span>
00199 <span class="keyword">struct </span><a class="code" href="structSPODNode.html">SPODNode</a> {
00200     <span class="keywordtype">int</span>          nIdx;              
00201     <span class="keywordtype">char</span>         *pszName;          
<a name="l00202"></a><a class="code" href="structSPODNode.html">00202</a>     <span class="keywordtype">int</span>          <a class="code" href="structSPODNode.html#o2">nIdxMaterial</a>;      
<a name="l00204"></a><a class="code" href="structSPODNode.html#o1">00204</a>     <span class="keywordtype">int</span>          <a class="code" href="structSPODNode.html#o3">nIdxParent</a>;        
00206     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structSPODNode.html#o4">nAnimFlags</a>;        
00208     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* <a class="code" href="structSPODNode.html#o5">pnAnimPositionIdx</a>;
<a name="l00209"></a><a class="code" href="structSPODNode.html#o4">00209</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    *<a class="code" href="structSPODNode.html#o6">pfAnimPosition</a>;    
<a name="l00211"></a><a class="code" href="structSPODNode.html#o5">00211</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* <a class="code" href="structSPODNode.html#o7">pnAnimRotationIdx</a>;
<a name="l00212"></a><a class="code" href="structSPODNode.html#o6">00212</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    *<a class="code" href="structSPODNode.html#o8">pfAnimRotation</a>;    
<a name="l00214"></a><a class="code" href="structSPODNode.html#o7">00214</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* <a class="code" href="structSPODNode.html#o9">pnAnimScaleIdx</a>;
<a name="l00215"></a><a class="code" href="structSPODNode.html#o8">00215</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    *<a class="code" href="structSPODNode.html#o10">pfAnimScale</a>;       
<a name="l00217"></a><a class="code" href="structSPODNode.html#o9">00217</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* <a class="code" href="structSPODNode.html#o11">pnAnimMatrixIdx</a>;
<a name="l00218"></a><a class="code" href="structSPODNode.html#o10">00218</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    *<a class="code" href="structSPODNode.html#o12">pfAnimMatrix</a>;      
00219 };
<a name="l00220"></a><a class="code" href="structSPODNode.html#o11">00220</a> 
<a name="l00221"></a><a class="code" href="structSPODNode.html#o12">00221</a> <span class="comment">/*!****************************************************************************</span>
00222 <span class="comment"> @Struct      SPODTexture</span>
00223 <span class="comment"> @Brief       Struct for storing POD texture data</span>
00224 <span class="comment">******************************************************************************/</span>
00225 <span class="keyword">struct </span><a class="code" href="structSPODTexture.html">SPODTexture</a> {
00226     <span class="keywordtype">char</span>    *<a class="code" href="structSPODTexture.html#o0">pszName</a>;           
00227 };
<a name="l00228"></a><a class="code" href="structSPODTexture.html">00228</a> 
<a name="l00229"></a><a class="code" href="structSPODTexture.html#o0">00229</a> <span class="comment">/*!****************************************************************************</span>
00230 <span class="comment"> @Struct      SPODMaterial</span>
00231 <span class="comment"> @Brief       Struct for storing POD material data</span>
00232 <span class="comment">******************************************************************************/</span>
00233 <span class="keyword">struct </span><a class="code" href="structSPODMaterial.html">SPODMaterial</a> {
00234     <span class="keywordtype">char</span>        *pszName;               
00235     <span class="keywordtype">int</span>         nIdxTexDiffuse;         
<a name="l00236"></a><a class="code" href="structSPODMaterial.html">00236</a>     <span class="keywordtype">int</span>         <a class="code" href="structSPODMaterial.html#o2">nIdxTexAmbient</a>;         
<a name="l00237"></a><a class="code" href="structSPODMaterial.html#o0">00237</a>     <span class="keywordtype">int</span>         <a class="code" href="structSPODMaterial.html#o3">nIdxTexSpecularColour</a>;  
<a name="l00238"></a><a class="code" href="structSPODMaterial.html#o1">00238</a>     <span class="keywordtype">int</span>         <a class="code" href="structSPODMaterial.html#o4">nIdxTexSpecularLevel</a>;   
<a name="l00239"></a><a class="code" href="structSPODMaterial.html#o2">00239</a>     <span class="keywordtype">int</span>         <a class="code" href="structSPODMaterial.html#o5">nIdxTexBump</a>;            
<a name="l00240"></a><a class="code" href="structSPODMaterial.html#o3">00240</a>     <span class="keywordtype">int</span>         <a class="code" href="structSPODMaterial.html#o6">nIdxTexEmissive</a>;        
<a name="l00241"></a><a class="code" href="structSPODMaterial.html#o4">00241</a>     <span class="keywordtype">int</span>         <a class="code" href="structSPODMaterial.html#o7">nIdxTexGlossiness</a>;      
<a name="l00242"></a><a class="code" href="structSPODMaterial.html#o5">00242</a>     <span class="keywordtype">int</span>         <a class="code" href="structSPODMaterial.html#o8">nIdxTexOpacity</a>;         
<a name="l00243"></a><a class="code" href="structSPODMaterial.html#o6">00243</a>     <span class="keywordtype">int</span>         <a class="code" href="structSPODMaterial.html#o9">nIdxTexReflection</a>;      
<a name="l00244"></a><a class="code" href="structSPODMaterial.html#o7">00244</a>     <span class="keywordtype">int</span>         <a class="code" href="structSPODMaterial.html#o10">nIdxTexRefraction</a>;      
<a name="l00245"></a><a class="code" href="structSPODMaterial.html#o8">00245</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    <a class="code" href="structSPODMaterial.html#o11">fMatOpacity</a>;            
<a name="l00246"></a><a class="code" href="structSPODMaterial.html#o9">00246</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    <a class="code" href="structSPODMaterial.html#o12">pfMatAmbient</a>[3];        
<a name="l00247"></a><a class="code" href="structSPODMaterial.html#o10">00247</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    <a class="code" href="structSPODMaterial.html#o13">pfMatDiffuse</a>[3];        
<a name="l00248"></a><a class="code" href="structSPODMaterial.html#o11">00248</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    <a class="code" href="structSPODMaterial.html#o14">pfMatSpecular</a>[3];       
<a name="l00249"></a><a class="code" href="structSPODMaterial.html#o12">00249</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    <a class="code" href="structSPODMaterial.html#o15">fMatShininess</a>;          
<a name="l00250"></a><a class="code" href="structSPODMaterial.html#o13">00250</a>     <span class="keywordtype">char</span>        *<a class="code" href="structSPODMaterial.html#o16">pszEffectFile</a>;         
<a name="l00251"></a><a class="code" href="structSPODMaterial.html#o14">00251</a>     <span class="keywordtype">char</span>        *<a class="code" href="structSPODMaterial.html#o17">pszEffectName</a>;         
<a name="l00253"></a><a class="code" href="structSPODMaterial.html#o16">00253</a>     <a class="code" href="structEPODBlendFunc.html">EPODBlendFunc</a>   <a class="code" href="structSPODMaterial.html#o18">eBlendSrcRGB</a>;       
<a name="l00254"></a><a class="code" href="structSPODMaterial.html#o17">00254</a>     <a class="code" href="structEPODBlendFunc.html">EPODBlendFunc</a>   <a class="code" href="structSPODMaterial.html#o19">eBlendSrcA</a>;         
00255     <a class="code" href="structEPODBlendFunc.html">EPODBlendFunc</a>   <a class="code" href="structSPODMaterial.html#o20">eBlendDstRGB</a>;       
<a name="l00256"></a><a class="code" href="structSPODMaterial.html#o18">00256</a>     <a class="code" href="structEPODBlendFunc.html">EPODBlendFunc</a>   <a class="code" href="structSPODMaterial.html#o21">eBlendDstA</a>;         
<a name="l00257"></a><a class="code" href="structSPODMaterial.html#o19">00257</a>     <a class="code" href="structEPODBlendOp.html">EPODBlendOp</a>     <a class="code" href="structSPODMaterial.html#o22">eBlendOpRGB</a>;        
<a name="l00258"></a><a class="code" href="structSPODMaterial.html#o20">00258</a>     <a class="code" href="structEPODBlendOp.html">EPODBlendOp</a>     <a class="code" href="structSPODMaterial.html#o23">eBlendOpA</a>;          
<a name="l00259"></a><a class="code" href="structSPODMaterial.html#o21">00259</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>        <a class="code" href="structSPODMaterial.html#o24">pfBlendColour</a>[4];   
<a name="l00260"></a><a class="code" href="structSPODMaterial.html#o22">00260</a>     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>        <a class="code" href="structSPODMaterial.html#o25">pfBlendFactor</a>[4];   
<a name="l00262"></a><a class="code" href="structSPODMaterial.html#o24">00262</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    nFlags;             
<a name="l00263"></a><a class="code" href="structSPODMaterial.html#o25">00263</a> };
00264 
<a name="l00265"></a><a class="code" href="structSPODMaterial.html#o26">00265</a> <span class="comment">/*!****************************************************************************</span>
00266 <span class="comment"> @Struct      SPODScene</span>
00267 <span class="comment"> @Brief       Struct for storing POD scene data</span>
00268 <span class="comment">******************************************************************************/</span>
00269 <span class="keyword">struct </span><a class="code" href="structSPODScene.html">SPODScene</a> {
00270     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    pfColourBackground[3];      
00271     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>    pfColourAmbient[3];         
<a name="l00273"></a><a class="code" href="structSPODScene.html#o0">00273</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    <a class="code" href="structSPODScene.html#o2">nNumCamera</a>;             
<a name="l00274"></a><a class="code" href="structSPODScene.html#o1">00274</a>     <a class="code" href="structSPODCamera.html">SPODCamera</a>      *<a class="code" href="structSPODScene.html#o3">pCamera</a>;               
<a name="l00276"></a><a class="code" href="structSPODScene.html#o2">00276</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    <a class="code" href="structSPODScene.html#o4">nNumLight</a>;              
<a name="l00277"></a><a class="code" href="structSPODScene.html#o3">00277</a>     <a class="code" href="structSPODLight.html">SPODLight</a>       *<a class="code" href="structSPODScene.html#o5">pLight</a>;                
<a name="l00279"></a><a class="code" href="structSPODScene.html#o4">00279</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    <a class="code" href="structSPODScene.html#o6">nNumMesh</a>;               
<a name="l00280"></a><a class="code" href="structSPODScene.html#o5">00280</a>     <a class="code" href="structSPODMesh.html">SPODMesh</a>        *<a class="code" href="structSPODScene.html#o7">pMesh</a>;                 
<a name="l00282"></a><a class="code" href="structSPODScene.html#o6">00282</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    <a class="code" href="structSPODScene.html#o8">nNumNode</a>;       
<a name="l00283"></a><a class="code" href="structSPODScene.html#o7">00283</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    <a class="code" href="structSPODScene.html#o9">nNumMeshNode</a>;   
00284     <a class="code" href="structSPODNode.html">SPODNode</a>        *<a class="code" href="structSPODScene.html#o10">pNode</a>;         
<a name="l00286"></a><a class="code" href="structSPODScene.html#o9">00286</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    <a class="code" href="structSPODScene.html#o11">nNumTexture</a>;    
<a name="l00287"></a><a class="code" href="structSPODScene.html#o10">00287</a>     <a class="code" href="structSPODTexture.html">SPODTexture</a>     *<a class="code" href="structSPODScene.html#o12">pTexture</a>;      
<a name="l00289"></a><a class="code" href="structSPODScene.html#o11">00289</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    <a class="code" href="structSPODScene.html#o13">nNumMaterial</a>;   
<a name="l00290"></a><a class="code" href="structSPODScene.html#o12">00290</a>     <a class="code" href="structSPODMaterial.html">SPODMaterial</a>    *<a class="code" href="structSPODScene.html#o14">pMaterial</a>;     
<a name="l00292"></a><a class="code" href="structSPODScene.html#o13">00292</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    <a class="code" href="structSPODScene.html#o15">nNumFrame</a>;      
<a name="l00293"></a><a class="code" href="structSPODScene.html#o14">00293</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    <a class="code" href="structSPODScene.html#o16">nFPS</a>;           
<a name="l00295"></a><a class="code" href="structSPODScene.html#o15">00295</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    nFlags;         
<a name="l00296"></a><a class="code" href="structSPODScene.html#o16">00296</a> };
00297 
<a name="l00298"></a><a class="code" href="structSPODScene.html#o17">00298</a> <span class="keyword">struct </span>SPVRTPODImpl;    <span class="comment">// Internal implementation data</span>
00299 
00300 <span class="comment">/*!***************************************************************************</span>
00301 <span class="comment">@Class CPVRTModelPOD</span>
00302 <span class="comment">@Brief A class for loading and storing data from POD files/headers</span>
00303 <span class="comment">*****************************************************************************/</span>
00304 <span class="keyword">class </span><a class="code" href="classCPVRTModelPOD.html">CPVRTModelPOD</a> : <span class="keyword">public</span> <a class="code" href="structSPODScene.html">SPODScene</a>{
00305 <span class="keyword">public</span>:
00306     <span class="comment">/*!***************************************************************************</span>
<a name="l00307"></a><a class="code" href="classCPVRTModelPOD.html">00307</a> <span class="comment">     @Function      Constructor</span>
00308 <span class="comment">     @Description   Constructor for CPVRTModelPOD class</span>
00309 <span class="comment">    *****************************************************************************/</span>
00310     <a class="code" href="classCPVRTModelPOD.html#a0">CPVRTModelPOD</a>();
00311 
00312     <span class="comment">/*!***************************************************************************</span>
00313 <span class="comment">     @Function      Destructor</span>
00314 <span class="comment">     @Description   Destructor for CPVRTModelPOD class</span>
00315 <span class="comment">    *****************************************************************************/</span>
00316     <a class="code" href="classCPVRTModelPOD.html#a1">~CPVRTModelPOD</a>();
00317 
00318     <span class="comment">/*!***************************************************************************</span>
00319 <span class="comment">    @Function           ReadFromFile</span>
00320 <span class="comment">    @Input              pszFileName     Filename to load</span>
00321 <span class="comment">    @Output         pszExpOpt       String in which to place exporter options</span>
00322 <span class="comment">    @Input              count           Maximum number of characters to store.</span>
00323 <span class="comment">    @Output         pszHistory      String in which to place the pod file history</span>
00324 <span class="comment">    @Input              historyCount    Maximum number of characters to store.</span>
00325 <span class="comment">    @Return         PVR_SUCCESS if successful, PVR_FAIL if not</span>
00326 <span class="comment">    @Description        Loads the specified ".POD" file; returns the scene in</span>
00327 <span class="comment">                        pScene. This structure must later be destroyed with</span>
00328 <span class="comment">                        PVRTModelPODDestroy() to prevent memory leaks.</span>
00329 <span class="comment">                        ".POD" files are exported using the PVRGeoPOD exporters.</span>
00330 <span class="comment">                        If pszExpOpt is NULL, the scene is loaded; otherwise the</span>
00331 <span class="comment">                        scene is not loaded and pszExpOpt is filled in. The same</span>
00332 <span class="comment">                        is true for pszHistory.</span>
00333 <span class="comment">    *****************************************************************************/</span>
00334     <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a2">ReadFromFile</a>(
00335         <span class="keyword">const</span> <span class="keywordtype">char</span>      * <span class="keyword">const</span> pszFileName,
00336         <span class="keywordtype">char</span>            * <span class="keyword">const</span> pszExpOpt = NULL,
00337         <span class="keyword">const</span> size_t    count = 0,
00338         <span class="keywordtype">char</span>            * <span class="keyword">const</span> pszHistory = NULL,
00339         <span class="keyword">const</span> size_t    historyCount = 0);
00340 
00341     <span class="comment">/*!***************************************************************************</span>
00342 <span class="comment">    @Function           ReadFromMemory</span>
00343 <span class="comment">    @Input              pData           Data to load</span>
00344 <span class="comment">    @Input              i32Size         Size of data</span>
00345 <span class="comment">    @Output         pszExpOpt       String in which to place exporter options</span>
00346 <span class="comment">    @Input              count           Maximum number of characters to store.</span>
00347 <span class="comment">    @Output         pszHistory      String in which to place the pod file history</span>
00348 <span class="comment">    @Input              historyCount    Maximum number of characters to store.</span>
00349 <span class="comment">    @Return         PVR_SUCCESS if successful, PVR_FAIL if not</span>
00350 <span class="comment">    @Description        Loads the supplied pod data. This data can be exported</span>
00351 <span class="comment">                        directly to a header using one of the pod exporters.</span>
00352 <span class="comment">                        If pszExpOpt is NULL, the scene is loaded; otherwise the</span>
00353 <span class="comment">                        scene is not loaded and pszExpOpt is filled in. The same</span>
00354 <span class="comment">                        is true for pszHistory.</span>
00355 <span class="comment">    *****************************************************************************/</span>
00356     <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a3">ReadFromMemory</a>(
00357         <span class="keyword">const</span> <span class="keywordtype">char</span>      * pData,
00358         <span class="keyword">const</span> size_t    i32Size,
00359         <span class="keywordtype">char</span>            * <span class="keyword">const</span> pszExpOpt = NULL,
00360         <span class="keyword">const</span> size_t    count = NULL,
00361         <span class="keywordtype">char</span>            * <span class="keyword">const</span> pszHistory = NULL,
00362         <span class="keyword">const</span> size_t    historyCount = NULL);
00363 
00364     <span class="comment">/*!***************************************************************************</span>
00365 <span class="comment">     @Function      ReadFromMemory</span>
00366 <span class="comment">     @Input         scene           Scene data from the header file</span>
00367 <span class="comment">     @Return        PVR_SUCCESS if successful, PVR_FAIL if not</span>
00368 <span class="comment">     @Description   Sets the scene data from the supplied data structure. Use</span>
00369 <span class="comment">                    when loading from .H files.</span>
00370 <span class="comment">    *****************************************************************************/</span>
00371     <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a3">ReadFromMemory</a>(
00372         <span class="keyword">const</span> <a class="code" href="structSPODScene.html">SPODScene</a> &amp;scene);
00373 
00374     <span class="comment">/*!***************************************************************************</span>
00375 <span class="comment">     @Function      CopyFromMemory</span>
00376 <span class="comment">     @Input         scene           Scene data from the header file</span>
00377 <span class="comment">     @Return        PVR_SUCCESS if successful, PVR_FAIL if not</span>
00378 <span class="comment">     @Description   Copies the scene data from the supplied data structure. Use</span>
00379 <span class="comment">                    when loading from .H files where you want to modify the data.</span>
00380 <span class="comment">    *****************************************************************************/</span>
00381     <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a5">CopyFromMemory</a>(
00382         <span class="keyword">const</span> <a class="code" href="structSPODScene.html">SPODScene</a> &amp;scene);
00383 
00384 <span class="preprocessor">#if defined(WIN32) &amp;&amp; !defined(__BADA__)</span>
00385 <span class="preprocessor"></span>    <span class="comment">/*!***************************************************************************</span>
00386 <span class="comment">     @Function      ReadFromResource</span>
00387 <span class="comment">     @Input         pszName         Name of the resource to load from</span>
00388 <span class="comment">     @Return        PVR_SUCCESS if successful, PVR_FAIL if not</span>
00389 <span class="comment">     @Description   Loads the specified ".POD" file; returns the scene in</span>
00390 <span class="comment">                    pScene. This structure must later be destroyed with</span>
00391 <span class="comment">                    PVRTModelPODDestroy() to prevent memory leaks.</span>
00392 <span class="comment">                    ".POD" files are exported from 3D Studio MAX using a</span>
00393 <span class="comment">                    PowerVR plugin.</span>
00394 <span class="comment">    *****************************************************************************/</span>
00395     <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> ReadFromResource(
00396         <span class="keyword">const</span> TCHAR * <span class="keyword">const</span> pszName);
00397 <span class="preprocessor">#endif</span>
00398 <span class="preprocessor"></span>
00399     <span class="comment">/*!***********************************************************************</span>
00400 <span class="comment">     @Function      InitImpl</span>
00401 <span class="comment">     @Description   Used by the Read*() fns to initialise implementation</span>
00402 <span class="comment">                    details. Should also be called by applications which</span>
00403 <span class="comment">                    manually build data in the POD structures for rendering;</span>
00404 <span class="comment">                    in this case call it after the data has been created.</span>
00405 <span class="comment">                    Otherwise, do not call this function.</span>
00406 <span class="comment">    *************************************************************************/</span>
00407     <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a6">InitImpl</a>();
00408 
00409     <span class="comment">/*!***********************************************************************</span>
00410 <span class="comment">     @Function      DestroyImpl</span>
00411 <span class="comment">     @Description   Used to free memory allocated by the implementation.</span>
00412 <span class="comment">    *************************************************************************/</span>
00413     <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a7">DestroyImpl</a>();
00414 
00415     <span class="comment">/*!***********************************************************************</span>
00416 <span class="comment">     @Function      FlushCache</span>
00417 <span class="comment">     @Description   Clears the matrix cache; use this if necessary when you</span>
00418 <span class="comment">                    edit the position or animation of a node.</span>
00419 <span class="comment">    *************************************************************************/</span>
00420     <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a8">FlushCache</a>();
00421     <span class="comment">/*!***************************************************************************</span>
00422 <span class="comment">     @Function      Destroy</span>
00423 <span class="comment">     @Description   Frees the memory allocated to store the scene in pScene.</span>
00424 <span class="comment">    *****************************************************************************/</span>
00425     <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a9">Destroy</a>();
00426 
00427     <span class="comment">/*!***************************************************************************</span>
00428 <span class="comment">     @Function      SetFrame</span>
00429 <span class="comment">     @Input         fFrame          Frame number</span>
00430 <span class="comment">     @Description   Set the animation frame for which subsequent Get*() calls</span>
00431 <span class="comment">                    should return data.</span>
00432 <span class="comment">    *****************************************************************************/</span>
00433     <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a10">SetFrame</a>(
00434         <span class="keyword">const</span> VERTTYPE fFrame);
00435 
00436     <span class="comment">/*!***************************************************************************</span>
00437 <span class="comment">     @Function      GetRotationMatrix</span>
00438 <span class="comment">     @Output        mOut            Rotation matrix</span>
00439 <span class="comment">     @Input         node            Node to get the rotation matrix from</span>
00440 <span class="comment">     @Description   Generates the world matrix for the given Mesh Instance;</span>
00441 <span class="comment">                    applies the parent's transform too. Uses animation data.</span>
00442 <span class="comment">    *****************************************************************************/</span>
00443     <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a11">GetRotationMatrix</a>(
00444         <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a>      &amp;mOut,
00445         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;node) <span class="keyword">const</span>;
00446 
00447     <span class="comment">/*!***************************************************************************</span>
00448 <span class="comment">     @Function      GetRotationMatrix</span>
00449 <span class="comment">     @Input         node            Node to get the rotation matrix from</span>
00450 <span class="comment">     @Returns       Rotation matrix</span>
00451 <span class="comment">     @Description   Generates the world matrix for the given Mesh Instance;</span>
00452 <span class="comment">                    applies the parent's transform too. Uses animation data.</span>
00453 <span class="comment">    *****************************************************************************/</span>
00454     <a class="code" href="structPVRTMat4.html">PVRTMat4</a> <a class="code" href="classCPVRTModelPOD.html#a11">GetRotationMatrix</a>(
00455         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;node) <span class="keyword">const</span>;
00456 
00457     <span class="comment">/*!***************************************************************************</span>
00458 <span class="comment">     @Function      GetScalingMatrix</span>
00459 <span class="comment">     @Output        mOut            Scaling matrix</span>
00460 <span class="comment">     @Input         node            Node to get the rotation matrix from</span>
00461 <span class="comment">     @Description   Generates the world matrix for the given Mesh Instance;</span>
00462 <span class="comment">                    applies the parent's transform too. Uses animation data.</span>
00463 <span class="comment">    *****************************************************************************/</span>
00464     <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a13">GetScalingMatrix</a>(
00465         <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a>      &amp;mOut,
00466         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;node) <span class="keyword">const</span>;
00467 
00468     <span class="comment">/*!***************************************************************************</span>
00469 <span class="comment">     @Function      GetScalingMatrix</span>
00470 <span class="comment">     @Input         node            Node to get the rotation matrix from</span>
00471 <span class="comment">     @Returns       Scaling matrix</span>
00472 <span class="comment">     @Description   Generates the world matrix for the given Mesh Instance;</span>
00473 <span class="comment">                    applies the parent's transform too. Uses animation data.</span>
00474 <span class="comment">    *****************************************************************************/</span>
00475     <a class="code" href="structPVRTMat4.html">PVRTMat4</a> <a class="code" href="classCPVRTModelPOD.html#a13">GetScalingMatrix</a>(
00476         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;node) <span class="keyword">const</span>;
00477 
00478     <span class="comment">/*!***************************************************************************</span>
00479 <span class="comment">     @Function      GetTranslation</span>
00480 <span class="comment">     @Output        V               Translation vector</span>
00481 <span class="comment">     @Input         node            Node to get the translation vector from</span>
00482 <span class="comment">     @Description   Generates the translation vector for the given Mesh</span>
00483 <span class="comment">                    Instance. Uses animation data.</span>
00484 <span class="comment">    *****************************************************************************/</span>
00485     <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a15">GetTranslation</a>(
00486         <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a>     &amp;V,
00487         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;node) <span class="keyword">const</span>;
00488 
00489     <span class="comment">/*!***************************************************************************</span>
00490 <span class="comment">     @Function      GetTranslation</span>
00491 <span class="comment">     @Input         node            Node to get the translation vector from</span>
00492 <span class="comment">      @Returns      Translation vector</span>
00493 <span class="comment">     @Description   Generates the translation vector for the given Mesh</span>
00494 <span class="comment">                    Instance. Uses animation data.</span>
00495 <span class="comment">    *****************************************************************************/</span>
00496     <a class="code" href="structPVRTVec3.html">PVRTVec3</a> <a class="code" href="classCPVRTModelPOD.html#a15">GetTranslation</a>(
00497         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;node) <span class="keyword">const</span>;
00498 
00499     <span class="comment">/*!***************************************************************************</span>
00500 <span class="comment">     @Function      GetTranslationMatrix</span>
00501 <span class="comment">     @Output        mOut            Translation matrix</span>
00502 <span class="comment">     @Input         node            Node to get the translation matrix from</span>
00503 <span class="comment">     @Description   Generates the world matrix for the given Mesh Instance;</span>
00504 <span class="comment">                    applies the parent's transform too. Uses animation data.</span>
00505 <span class="comment">    *****************************************************************************/</span>
00506     <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a17">GetTranslationMatrix</a>(
00507         <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a>      &amp;mOut,
00508         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;node) <span class="keyword">const</span>;
00509 
00510     <span class="comment">/*!***************************************************************************</span>
00511 <span class="comment">     @Function      GetTranslationMatrix</span>
00512 <span class="comment">     @Input         node            Node to get the translation matrix from</span>
00513 <span class="comment">     @Returns       Translation matrix</span>
00514 <span class="comment">     @Description   Generates the world matrix for the given Mesh Instance;</span>
00515 <span class="comment">                    applies the parent's transform too. Uses animation data.</span>
00516 <span class="comment">    *****************************************************************************/</span>
00517     <a class="code" href="structPVRTMat4.html">PVRTMat4</a> <a class="code" href="classCPVRTModelPOD.html#a17">GetTranslationMatrix</a>(
00518         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;node) <span class="keyword">const</span>;
00519 
00520     <span class="comment">/*!***************************************************************************</span>
00521 <span class="comment">     @Function      GetTransformationMatrix</span>
00522 <span class="comment">     @Output        mOut            Transformation matrix</span>
00523 <span class="comment">     @Input         node            Node to get the transformation matrix from</span>
00524 <span class="comment">     @Description   Generates the world matrix for the given Mesh Instance;</span>
00525 <span class="comment">                    applies the parent's transform too. Uses animation data.</span>
00526 <span class="comment">    *****************************************************************************/</span>
00527     <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a19">GetTransformationMatrix</a>(<a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a> &amp;mOut, <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;node) <span class="keyword">const</span>;
00528 
00529     <span class="comment">/*!***************************************************************************</span>
00530 <span class="comment">     @Function      GetWorldMatrixNoCache</span>
00531 <span class="comment">     @Output        mOut            World matrix</span>
00532 <span class="comment">     @Input         node            Node to get the world matrix from</span>
00533 <span class="comment">     @Description   Generates the world matrix for the given Mesh Instance;</span>
00534 <span class="comment">                    applies the parent's transform too. Uses animation data.</span>
00535 <span class="comment">    *****************************************************************************/</span>
00536     <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a20">GetWorldMatrixNoCache</a>(
00537         <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a>      &amp;mOut,
00538         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;node) <span class="keyword">const</span>;
00539 
00540     <span class="comment">/*!***************************************************************************</span>
00541 <span class="comment">    @Function       GetWorldMatrixNoCache</span>
00542 <span class="comment">    @Input          node            Node to get the world matrix from</span>
00543 <span class="comment">    @Returns        World matrix</span>
00544 <span class="comment">    @Description    Generates the world matrix for the given Mesh Instance;</span>
00545 <span class="comment">                    applies the parent's transform too. Uses animation data.</span>
00546 <span class="comment">    *****************************************************************************/</span>
00547     <a class="code" href="structPVRTMat4.html">PVRTMat4</a> <a class="code" href="classCPVRTModelPOD.html#a20">GetWorldMatrixNoCache</a>(
00548         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;node) <span class="keyword">const</span>;
00549 
00550     <span class="comment">/*!***************************************************************************</span>
00551 <span class="comment">     @Function      GetWorldMatrix</span>
00552 <span class="comment">     @Output        mOut            World matrix</span>
00553 <span class="comment">     @Input         node            Node to get the world matrix from</span>
00554 <span class="comment">     @Description   Generates the world matrix for the given Mesh Instance;</span>
00555 <span class="comment">                    applies the parent's transform too. Uses animation data.</span>
00556 <span class="comment">    *****************************************************************************/</span>
00557     <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a22">GetWorldMatrix</a>(
00558         <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a>      &amp;mOut,
00559         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;node) <span class="keyword">const</span>;
00560 
00561     <span class="comment">/*!***************************************************************************</span>
00562 <span class="comment">    @Function       GetWorldMatrix</span>
00563 <span class="comment">    @Input          node            Node to get the world matrix from</span>
00564 <span class="comment">    @Returns        World matrix</span>
00565 <span class="comment">    @Description    Generates the world matrix for the given Mesh Instance;</span>
00566 <span class="comment">                    applies the parent's transform too. Uses animation data.</span>
00567 <span class="comment">    *****************************************************************************/</span>
00568     <a class="code" href="structPVRTMat4.html">PVRTMat4</a> <a class="code" href="classCPVRTModelPOD.html#a22">GetWorldMatrix</a>(<span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>&amp; node) <span class="keyword">const</span>;
00569 
00570     <span class="comment">/*!***************************************************************************</span>
00571 <span class="comment">     @Function      GetBoneWorldMatrix</span>
00572 <span class="comment">     @Output        mOut            Bone world matrix</span>
00573 <span class="comment">     @Input         NodeMesh        Mesh to take the bone matrix from</span>
00574 <span class="comment">     @Input         NodeBone        Bone to take the matrix from</span>
00575 <span class="comment">     @Description   Generates the world matrix for the given bone.</span>
00576 <span class="comment">    *****************************************************************************/</span>
00577     <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a24">GetBoneWorldMatrix</a>(
00578         <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIX</a>      &amp;mOut,
00579         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;NodeMesh,
00580         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;NodeBone);
00581 
00582     <span class="comment">/*!***************************************************************************</span>
00583 <span class="comment">    @Function       GetBoneWorldMatrix</span>
00584 <span class="comment">    @Input          NodeMesh        Mesh to take the bone matrix from</span>
00585 <span class="comment">    @Input          NodeBone        Bone to take the matrix from</span>
00586 <span class="comment">    @Returns        Bone world matrix</span>
00587 <span class="comment">    @Description    Generates the world matrix for the given bone.</span>
00588 <span class="comment">    *****************************************************************************/</span>
00589     <a class="code" href="structPVRTMat4.html">PVRTMat4</a> <a class="code" href="classCPVRTModelPOD.html#a24">GetBoneWorldMatrix</a>(
00590         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;NodeMesh,
00591         <span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a>  &amp;NodeBone);
00592 
00593     <span class="comment">/*!***************************************************************************</span>
00594 <span class="comment">     @Function      GetCamera</span>
00595 <span class="comment">     @Output        vFrom           Position of the camera</span>
00596 <span class="comment">     @Output        vTo             Target of the camera</span>
00597 <span class="comment">     @Output        vUp             Up direction of the camera</span>
00598 <span class="comment">     @Input         nIdx            Camera number</span>
00599 <span class="comment">     @Return        Camera horizontal FOV</span>
00600 <span class="comment">     @Description   Calculate the From, To and Up vectors for the given</span>
00601 <span class="comment">                    camera. Uses animation data.</span>
00602 <span class="comment">                    Note that even if the camera has a target, *pvTo is not</span>
00603 <span class="comment">                    the position of that target. *pvTo is a position in the</span>
00604 <span class="comment">                    correct direction of the target, one unit away from the</span>
00605 <span class="comment">                    camera.</span>
00606 <span class="comment">    *****************************************************************************/</span>
00607     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> <a class="code" href="classCPVRTModelPOD.html#a26">GetCamera</a>(
00608         <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a>         &amp;vFrom,
00609         <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a>         &amp;vTo,
00610         <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a>         &amp;vUp,
00611         <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>  nIdx) <span class="keyword">const</span>;
00612 
00613     <span class="comment">/*!***************************************************************************</span>
00614 <span class="comment">     @Function      GetCameraPos</span>
00615 <span class="comment">     @Output        vFrom           Position of the camera</span>
00616 <span class="comment">     @Output        vTo             Target of the camera</span>
00617 <span class="comment">     @Input         nIdx            Camera number</span>
00618 <span class="comment">     @Return        Camera horizontal FOV</span>
00619 <span class="comment">     @Description   Calculate the position of the camera and its target. Uses</span>
00620 <span class="comment">                    animation data.</span>
00621 <span class="comment">                    If the queried camera does not have a target, *pvTo is</span>
00622 <span class="comment">                    not changed.</span>
00623 <span class="comment">    *****************************************************************************/</span>
00624     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a> <a class="code" href="classCPVRTModelPOD.html#a27">GetCameraPos</a>(
00625         <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a>         &amp;vFrom,
00626         <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a>         &amp;vTo,
00627         <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>  nIdx) <span class="keyword">const</span>;
00628 
00629     <span class="comment">/*!***************************************************************************</span>
00630 <span class="comment">     @Function      GetLight</span>
00631 <span class="comment">     @Output        vPos            Position of the light</span>
00632 <span class="comment">     @Output        vDir            Direction of the light</span>
00633 <span class="comment">     @Input         nIdx            Light number</span>
00634 <span class="comment">     @Description   Calculate the position and direction of the given Light.</span>
00635 <span class="comment">                    Uses animation data.</span>
00636 <span class="comment">    *****************************************************************************/</span>
00637     <span class="keywordtype">void</span> <a class="code" href="classCPVRTModelPOD.html#a28">GetLight</a>(
00638         <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a>         &amp;vPos,
00639         <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a>         &amp;vDir,
00640         <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>  nIdx) <span class="keyword">const</span>;
00641 
00642     <span class="comment">/*!***************************************************************************</span>
00643 <span class="comment">     @Function      GetLightPosition</span>
00644 <span class="comment">     @Input         u32Idx          Light number</span>
00645 <span class="comment">     @Return        PVRTVec4 position of light with w set correctly</span>
00646 <span class="comment">     @Description   Calculate the position the given Light. Uses animation data.</span>
00647 <span class="comment">    *****************************************************************************/</span>
00648     <a class="code" href="structPVRTVec4.html">PVRTVec4</a> <a class="code" href="classCPVRTModelPOD.html#a29">GetLightPosition</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> u32Idx) <span class="keyword">const</span>;
00649 
00650     <span class="comment">/*!***************************************************************************</span>
00651 <span class="comment">    @Function       GetLightDirection</span>
00652 <span class="comment">    @Input          u32Idx          Light number</span>
00653 <span class="comment">    @Return         PVRTVec4 direction of light with w set correctly</span>
00654 <span class="comment">    @Description    Calculate the direction of the given Light. Uses animation data.</span>
00655 <span class="comment">    *****************************************************************************/</span>
00656     <a class="code" href="structPVRTVec4.html">PVRTVec4</a> <a class="code" href="classCPVRTModelPOD.html#a30">GetLightDirection</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> u32Idx) <span class="keyword">const</span>;
00657 
00658     <span class="comment">/*!***************************************************************************</span>
00659 <span class="comment">     @Function      CreateSkinIdxWeight</span>
00660 <span class="comment">     @Output        pIdx                Four bytes containing matrix indices for vertex (0..255) (D3D: use UBYTE4)</span>
00661 <span class="comment">     @Output        pWeight             Four bytes containing blend weights for vertex (0.0 .. 1.0) (D3D: use D3DCOLOR)</span>
00662 <span class="comment">     @Input         nVertexBones        Number of bones this vertex uses</span>
00663 <span class="comment">     @Input         pnBoneIdx           Pointer to 'nVertexBones' indices</span>
00664 <span class="comment">     @Input         pfBoneWeight        Pointer to 'nVertexBones' blend weights</span>
00665 <span class="comment">     @Description   Creates the matrix indices and blend weights for a boned</span>
00666 <span class="comment">                    vertex. Call once per vertex of a boned mesh.</span>
00667 <span class="comment">    *****************************************************************************/</span>
00668     <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a31">CreateSkinIdxWeight</a>(
00669         <span class="keywordtype">char</span>            * <span class="keyword">const</span> pIdx,
00670         <span class="keywordtype">char</span>            * <span class="keyword">const</span> pWeight,
00671         <span class="keyword">const</span> <span class="keywordtype">int</span>       nVertexBones,
00672         <span class="keyword">const</span> <span class="keywordtype">int</span>       * <span class="keyword">const</span> pnBoneIdx,
00673         <span class="keyword">const</span> VERTTYPE  * <span class="keyword">const</span> pfBoneWeight);
00674 
00675     <span class="comment">/*!***************************************************************************</span>
00676 <span class="comment">     @Function      SavePOD</span>
00677 <span class="comment">     @Input         pszFilename     Filename to save to</span>
00678 <span class="comment">     @Input         pszExpOpt       A string containing the options used by the exporter</span>
00679 <span class="comment">     @Input         pszHistory      A string containing the history of the exported pod file</span>
00680 <span class="comment">     @Description   Save a binary POD file (.POD).</span>
00681 <span class="comment">    *****************************************************************************/</span>
00682     <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="classCPVRTModelPOD.html#a32">SavePOD</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> pszFilename, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> pszExpOpt = 0, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> pszHistory = 0);
00683 
00684 <span class="keyword">private</span>:
00685     SPVRTPODImpl    *m_pImpl;   
00686 };
00687 
00688 <span class="comment">/****************************************************************************</span>
00689 <span class="comment">** Declarations</span>
00690 <span class="comment">****************************************************************************/</span>
00691 
00692 <span class="comment">/*!***************************************************************************</span>
00693 <span class="comment"> @Function      PVRTModelPODDataTypeSize</span>
00694 <span class="comment"> @Input         type        Type to get the size of</span>
00695 <span class="comment"> @Return        Size of the data element</span>
00696 <span class="comment"> @Description   Returns the size of each data element.</span>
00697 <span class="comment">*****************************************************************************/</span>
00698 size_t <a class="code" href="PVRTModelPOD_8h.html#a34">PVRTModelPODDataTypeSize</a>(<span class="keyword">const</span> EPVRTDataType type);
00699 
00700 <span class="comment">/*!***************************************************************************</span>
00701 <span class="comment"> @Function      PVRTModelPODDataTypeComponentCount</span>
00702 <span class="comment"> @Input         type        Type to get the number of components from</span>
00703 <span class="comment"> @Return        number of components in the data element</span>
00704 <span class="comment"> @Description   Returns the number of components in a data element.</span>
00705 <span class="comment">*****************************************************************************/</span>
00706 size_t <a class="code" href="PVRTModelPOD_8h.html#a35">PVRTModelPODDataTypeComponentCount</a>(<span class="keyword">const</span> EPVRTDataType type);
00707 
00708 <span class="comment">/*!***************************************************************************</span>
00709 <span class="comment"> @Function      PVRTModelPODDataStride</span>
00710 <span class="comment"> @Input         data        Data elements</span>
00711 <span class="comment"> @Return        Size of the vector elements</span>
00712 <span class="comment"> @Description   Returns the size of the vector of data elements.</span>
00713 <span class="comment">*****************************************************************************/</span>
00714 size_t <a class="code" href="PVRTModelPOD_8h.html#a36">PVRTModelPODDataStride</a>(<span class="keyword">const</span> <a class="code" href="classCPODData.html">CPODData</a> &amp;data);
00715 
00716 <span class="comment">/*!***************************************************************************</span>
00717 <span class="comment"> @Function          PVRTModelPODGetAnimArraySize</span>
00718 <span class="comment"> @Input             pAnimDataIdx</span>
00719 <span class="comment"> @Input             ui32Frames</span>
00720 <span class="comment"> @Input             ui32Components</span>
00721 <span class="comment"> @Return            Size of the animation array</span>
00722 <span class="comment"> @Description       Calculates the size of an animation array</span>
00723 <span class="comment">*****************************************************************************/</span>
00724 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="PVRTModelPOD_8h.html#a37">PVRTModelPODGetAnimArraySize</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *pAnimDataIdx, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ui32Frames, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ui32Components);
00725 
00726 <span class="comment">/*!***************************************************************************</span>
00727 <span class="comment"> @Function      PVRTModelPODScaleAndConvertVtxData</span>
00728 <span class="comment"> @Modified      mesh        POD mesh to scale and convert the mesh data</span>
00729 <span class="comment"> @Input         eNewType    The data type to scale and convert the vertex data to</span>
00730 <span class="comment"> @Return        PVR_SUCCESS on success and PVR_FAIL on failure.</span>
00731 <span class="comment"> @Description   Scales the vertex data to fit within the range of the requested</span>
00732 <span class="comment">                data type and then converts the data to that type. This function</span>
00733 <span class="comment">                isn't currently compiled in for fixed point builds of the tools.</span>
00734 <span class="comment">*****************************************************************************/</span>
00735 <span class="preprocessor">#if !defined(PVRT_FIXED_POINT_ENABLE)</span>
00736 <span class="preprocessor"></span><a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="PVRTModelPOD_8h.html#a38">PVRTModelPODScaleAndConvertVtxData</a>(<a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;mesh, <span class="keyword">const</span> EPVRTDataType eNewType);
00737 <span class="preprocessor">#endif</span>
00738 <span class="preprocessor"></span><span class="comment">/*!***************************************************************************</span>
00739 <span class="comment"> @Function      PVRTModelPODDataConvert</span>
00740 <span class="comment"> @Modified      data        Data elements to convert</span>
00741 <span class="comment"> @Input         eNewType    New type of elements</span>
00742 <span class="comment"> @Input         nCnt        Number of elements</span>
00743 <span class="comment"> @Description   Convert the format of the array of vectors.</span>
00744 <span class="comment">*****************************************************************************/</span>
00745 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a39">PVRTModelPODDataConvert</a>(<a class="code" href="classCPODData.html">CPODData</a> &amp;data, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nCnt, <span class="keyword">const</span> EPVRTDataType eNewType);
00746 
00747 <span class="comment">/*!***************************************************************************</span>
00748 <span class="comment"> @Function          PVRTModelPODDataShred</span>
00749 <span class="comment"> @Modified          data        Data elements to modify</span>
00750 <span class="comment"> @Input             nCnt        Number of elements</span>
00751 <span class="comment"> @Input             pChannels   A list of the wanted channels, e.g. {'x', 'y', 0}</span>
00752 <span class="comment"> @Description       Reduce the number of dimensions in 'data' using the requested</span>
00753 <span class="comment">                    channel array. The array should have a maximum length of 4</span>
00754 <span class="comment">                    or be null terminated if less channels are wanted. Supported</span>
00755 <span class="comment">                    elements are 'x','y','z' and 'w'. They must be defined in lower</span>
00756 <span class="comment">                    case. It is also possible to negate an element, e.g. {'x','y', -'z'}.</span>
00757 <span class="comment">*****************************************************************************/</span>
00758 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a40">PVRTModelPODDataShred</a>(<a class="code" href="classCPODData.html">CPODData</a> &amp;data, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nCnt, <span class="keyword">const</span> <span class="keywordtype">int</span> *pChannels);
00759 
00760 <span class="comment">/*!***************************************************************************</span>
00761 <span class="comment"> @Function          PVRTModelPODReorderFaces</span>
00762 <span class="comment"> @Modified          mesh        The mesh to re-order the faces of</span>
00763 <span class="comment"> @Input             i32El1      The first index to be written out</span>
00764 <span class="comment"> @Input             i32El2      The second index to be written out</span>
00765 <span class="comment"> @Input             i32El3      The third index to be written out</span>
00766 <span class="comment"> @Description       Reorders the face indices of a mesh.</span>
00767 <span class="comment">*****************************************************************************/</span>
00768 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a41">PVRTModelPODReorderFaces</a>(<a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;mesh, <span class="keyword">const</span> <span class="keywordtype">int</span> i32El1, <span class="keyword">const</span> <span class="keywordtype">int</span> i32El2, <span class="keyword">const</span> <span class="keywordtype">int</span> i32El3);
00769 
00770 <span class="comment">/*!***************************************************************************</span>
00771 <span class="comment"> @Function      PVRTModelPODToggleInterleaved</span>
00772 <span class="comment"> @Modified      mesh        Mesh to modify</span>
00773 <span class="comment"> @Input         ui32AlignToNBytes Align the interleaved data to this no. of bytes.</span>
00774 <span class="comment"> @Description   Switches the supplied mesh to or from interleaved data format.</span>
00775 <span class="comment">*****************************************************************************/</span>
00776 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a42">PVRTModelPODToggleInterleaved</a>(<a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;mesh, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ui32AlignToNBytes = 1);
00777 
00778 <span class="comment">/*!***************************************************************************</span>
00779 <span class="comment"> @Function      PVRTModelPODDeIndex</span>
00780 <span class="comment"> @Modified      mesh        Mesh to modify</span>
00781 <span class="comment"> @Description   De-indexes the supplied mesh. The mesh must be</span>
00782 <span class="comment">                Interleaved before calling this function.</span>
00783 <span class="comment">*****************************************************************************/</span>
00784 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a43">PVRTModelPODDeIndex</a>(<a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;mesh);
00785 
00786 <span class="comment">/*!***************************************************************************</span>
00787 <span class="comment"> @Function      PVRTModelPODToggleStrips</span>
00788 <span class="comment"> @Modified      mesh        Mesh to modify</span>
00789 <span class="comment"> @Description   Converts the supplied mesh to or from strips.</span>
00790 <span class="comment">*****************************************************************************/</span>
00791 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a44">PVRTModelPODToggleStrips</a>(<a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;mesh);
00792 
00793 <span class="comment">/*!***************************************************************************</span>
00794 <span class="comment"> @Function      PVRTModelPODCountIndices</span>
00795 <span class="comment"> @Input         mesh        Mesh</span>
00796 <span class="comment"> @Return        Number of indices used by mesh</span>
00797 <span class="comment"> @Description   Counts the number of indices of a mesh</span>
00798 <span class="comment">*****************************************************************************/</span>
00799 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="PVRTModelPOD_8h.html#a45">PVRTModelPODCountIndices</a>(<span class="keyword">const</span> <a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;mesh);
00800 
00801 <span class="comment">/*!***************************************************************************</span>
00802 <span class="comment"> @Function      PVRTModelPODToggleFixedPoint</span>
00803 <span class="comment"> @Modified      s       Scene to modify</span>
00804 <span class="comment"> @Description   Switch all non-vertex data between fixed-point and</span>
00805 <span class="comment">                floating-point.</span>
00806 <span class="comment">*****************************************************************************/</span>
00807 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a46">PVRTModelPODToggleFixedPoint</a>(<a class="code" href="structSPODScene.html">SPODScene</a> &amp;s);
00808 
00809 <span class="comment">/*!***************************************************************************</span>
00810 <span class="comment"> @Function          PVRTModelPODCopyCPODData</span>
00811 <span class="comment"> @Input             in</span>
00812 <span class="comment"> @Output            out</span>
00813 <span class="comment"> @Input             ui32No</span>
00814 <span class="comment"> @Input             bInterleaved</span>
00815 <span class="comment"> @Description       Used to copy a CPODData of a mesh</span>
00816 <span class="comment">*****************************************************************************/</span>
00817 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a47">PVRTModelPODCopyCPODData</a>(<span class="keyword">const</span> <a class="code" href="classCPODData.html">CPODData</a> &amp;in, <a class="code" href="classCPODData.html">CPODData</a> &amp;out, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ui32No, <span class="keywordtype">bool</span> bInterleaved);
00818 
00819 <span class="comment">/*!***************************************************************************</span>
00820 <span class="comment"> @Function          PVRTModelPODCopyNode</span>
00821 <span class="comment"> @Input             in</span>
00822 <span class="comment"> @Output            out</span>
00823 <span class="comment"> @Input             nNumFrames The number of animation frames</span>
00824 <span class="comment"> @Description       Used to copy a pod node</span>
00825 <span class="comment">*****************************************************************************/</span>
00826 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a48">PVRTModelPODCopyNode</a>(<span class="keyword">const</span> <a class="code" href="structSPODNode.html">SPODNode</a> &amp;in, <a class="code" href="structSPODNode.html">SPODNode</a> &amp;out, <span class="keywordtype">int</span> nNumFrames);
00827 
00828 <span class="comment">/*!***************************************************************************</span>
00829 <span class="comment"> @Function          PVRTModelPODCopyMesh</span>
00830 <span class="comment"> @Input             in</span>
00831 <span class="comment"> @Output            out</span>
00832 <span class="comment"> @Description       Used to copy a pod mesh</span>
00833 <span class="comment">*****************************************************************************/</span>
00834 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a49">PVRTModelPODCopyMesh</a>(<span class="keyword">const</span> <a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;in, <a class="code" href="structSPODMesh.html">SPODMesh</a> &amp;out);
00835 
00836 <span class="comment">/*!***************************************************************************</span>
00837 <span class="comment"> @Function          PVRTModelPODCopyTexture</span>
00838 <span class="comment"> @Input             in</span>
00839 <span class="comment"> @Output            out</span>
00840 <span class="comment"> @Description       Used to copy a pod texture</span>
00841 <span class="comment">*****************************************************************************/</span>
00842 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a50">PVRTModelPODCopyTexture</a>(<span class="keyword">const</span> <a class="code" href="structSPODTexture.html">SPODTexture</a> &amp;in, <a class="code" href="structSPODTexture.html">SPODTexture</a> &amp;out);
00843 
00844 <span class="comment">/*!***************************************************************************</span>
00845 <span class="comment"> @Function          PVRTModelPODCopyMaterial</span>
00846 <span class="comment"> @Input             in</span>
00847 <span class="comment"> @Output            out</span>
00848 <span class="comment"> @Description       Used to copy a pod material</span>
00849 <span class="comment">*****************************************************************************/</span>
00850 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a51">PVRTModelPODCopyMaterial</a>(<span class="keyword">const</span> <a class="code" href="structSPODMaterial.html">SPODMaterial</a> &amp;in, <a class="code" href="structSPODMaterial.html">SPODMaterial</a> &amp;out);
00851 
00852 <span class="comment">/*!***************************************************************************</span>
00853 <span class="comment"> @Function          PVRTModelPODCopyCamera</span>
00854 <span class="comment"> @Input             in</span>
00855 <span class="comment"> @Output            out</span>
00856 <span class="comment"> @Input             nNumFrames The number of animation frames</span>
00857 <span class="comment"> @Description       Used to copy a pod camera</span>
00858 <span class="comment">*****************************************************************************/</span>
00859 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a52">PVRTModelPODCopyCamera</a>(<span class="keyword">const</span> <a class="code" href="structSPODCamera.html">SPODCamera</a> &amp;in, <a class="code" href="structSPODCamera.html">SPODCamera</a> &amp;out, <span class="keywordtype">int</span> nNumFrames);
00860 
00861 <span class="comment">/*!***************************************************************************</span>
00862 <span class="comment"> @Function          PVRTModelPODCopyLight</span>
00863 <span class="comment"> @Input             in</span>
00864 <span class="comment"> @Output            out</span>
00865 <span class="comment"> @Description       Used to copy a pod light</span>
00866 <span class="comment">*****************************************************************************/</span>
00867 <span class="keywordtype">void</span> <a class="code" href="PVRTModelPOD_8h.html#a53">PVRTModelPODCopyLight</a>(<span class="keyword">const</span> <a class="code" href="structSPODLight.html">SPODLight</a> &amp;in, <a class="code" href="structSPODLight.html">SPODLight</a> &amp;out);
00868 
00869 <span class="comment">/*!***************************************************************************</span>
00870 <span class="comment"> @Function          PVRTModelPODFlattenToWorldSpace</span>
00871 <span class="comment"> @Input             in - Source scene. All meshes must not be interleaved.</span>
00872 <span class="comment"> @Output            out</span>
00873 <span class="comment"> @Description       Used to flatten a pod scene to world space. All animation</span>
00874 <span class="comment">                    and skinning information will be removed. The returned</span>
00875 <span class="comment">                    position, normal, binormals and tangent data if present</span>
00876 <span class="comment">                    will be returned as floats regardless of the input data</span>
00877 <span class="comment">                    type.</span>
00878 <span class="comment">*****************************************************************************/</span>
00879 <a class="code" href="PVRTError_8h.html#a5">EPVRTError</a> <a class="code" href="PVRTModelPOD_8h.html#a54">PVRTModelPODFlattenToWorldSpace</a>(<a class="code" href="classCPVRTModelPOD.html">CPVRTModelPOD</a> &amp;in, <a class="code" href="classCPVRTModelPOD.html">CPVRTModelPOD</a> &amp;out);
00880 
00881 <span class="preprocessor">#endif </span><span class="comment">/* _PVRTMODELPOD_H_ */</span>
00882 
00883 <span class="comment">/*****************************************************************************</span>
00884 <span class="comment"> End of file (PVRTModelPOD.h)</span>
00885 <span class="comment">*****************************************************************************/</span>
00886 
</pre></div><br>
<br>
<P align=left><FONT size=2><STRONG><A 
   href="http://www.imgtec.com/powervr/insider/legal/index.asp">Copyright</A> � 
   1999-2008, Imagination Technologies Ltd.</STRONG></FONT></P>
<hr>
<address style="align: left;"><small><FONT color=f0f>
Generated by <a href="http://www.doxygen.org/index.html">DOXYGEN</a> 1.3.6</small></address>
</body>
</html>
